Techniques for searching large data repositories have become commonplace. For example, according to conventional search modalities, a user types a search query composed of one or more search terms, a search engine identifies relevant data from a data repository data based on the search query and on a searching algorithm, and the identified data is returned to the user as search results.
Some conventional searching systems monitor the characters typed by the user and contemporaneously suggest search terms based on the characters. Typically, the suggested search terms are generated by querying a remote database of previously-entered queries while the characters are being typed and/or by comparing the typed characters to search queries which have been previously input by the user and which are stored locally.
Corporate enterprise software systems receive, generate, and store data related to many aspects of a business enterprise. In some implementations, this data may relate to marketing, sales, customer relations, supplier relations, inventory, human resources, and/or finances. Analytical tools, such as reporting systems, are commonly used to present such enterprise data to users in useful formats.
The suggestion-based search systems mentioned above are unsuited for the corporate scenario, in which a relatively small number of users employ a relatively small number of terms, most of which have specialized meaning. Due to this specialization, one usage of a term cannot easily be distinguished from another without knowledge of the usage context. The context is often only apparent upon review of the content corresponding to each usage.
For example, typing “cust” into a search box may result in the query suggestions: customer sales; customer issues; customers requesting upgrades; and customer list. However, the term “customer sales” holds a subtly different meaning for people in different departments (e.g., marketing, sales, finance, and engineering). Moreover, a typical enterprise environment may provide many information sources containing the term “customer sales”, including reports, documents, presentations, and database tables, but each individual information source may be only relevant to a single department. For example, the finance department may only be interested in search results including financial reports and databases, and not in search results including sales funnel information or engineering studies on product usage statistics.
In order to access desired information sources, the user can execute the suggested query, receive search results including a list of information sources, examine each information source, and select the ones that are semantically relevant to the user's task. Such an operation is inefficient, and runs contrary to the time-saving purpose of query suggestion.
What is needed is a query suggestion system which efficiently allows a user to distinguish between suggested queries based on the stored data of an enterprise system.